/*
this file for 32bit windows and linux c design
*/

#ifndef _H_DEF_32BIT_H
#define	_H_DEF_32BIT_H


#ifndef IN 
#define IN
#define	OUT
#endif	/*IN OUT */

#ifndef VOID
#define VOID            void
#endif	/*VOID ndef*/

#ifndef FALSE
#define FALSE 0
#define TRUE 1
#endif	/*FALSE*/

#define CONST const 
#define __RPC_FAR  

typedef long				BOOL;
typedef unsigned short		WORD ;
typedef	unsigned long		DWORD;
typedef long				LONG ;
typedef unsigned char		BYTE;
typedef BYTE*				LPBYTE ;
typedef void*				LPVOID;	
typedef char				CHAR;
typedef const CHAR  *		LPCSTR;
typedef CONST void  *		LPCVOID ;
typedef CHAR  *				LPSTR;
typedef unsigned int		UINT ;
typedef DWORD*				LPDWORD;



#define MAKEWORD(a, b)      ((WORD)(((BYTE)(a)) | ((WORD)((BYTE)(b))) << 8))
#define MAKELONG(a, b)      ((LONG)(((WORD)(a)) | ((DWORD)((WORD)(b))) << 16))
#define LOWORD(l)           ((WORD)(l))
#define HIWORD(l)           ((WORD)(((DWORD)(l) >> 16) & 0xFFFF))
#define LOBYTE(w)           ((BYTE)(w))
#define HIBYTE(w)           ((BYTE)(((WORD)(w) >> 8) & 0xFF))













#if defined WIN32 || defined _WIN32 || defined _WIN64
	
	#ifndef WINAPI
	
	#define PASCAL          _pascal
	#define CDECL           _cdecl
	#define VOID            void
	#define WINAPI			_stdcall
	#define CALLBACK		_stdcall
	

	

	#endif	/*WINAPI*/

	#pragma message("windows32")
#else
	//#pragma info("linux mac freebsd?")

	#define WINAPI
	#define PASCAL          _pascal
	#define CDECL           _cdecl
	#define CALLBACK		PASCAL


#endif	/*Win32*/







#endif /*_H_DEF_32BIT_H*/




